The present invention pertains to execution of software applications in a distributed network environment. More particularly, the present invention relates to using a server system to provide multiple, selectable rendering modes of a given software application, for use by client systems on a network.
Significant attention has been focused recently on developing software applications for use in distributed network environments, such as the Internet. In particular, there has been great interest in enabling the user of client system to access and execute a software application that resides on a remote server on the Internet. Technology currently exists to allow such a software application to be constructed as a set of hypertext markup language (HTML) pages with an associated set of executable components, such as Java applets. These applets may be used, for example, to perform functions such as generating grids, charts, and tables, which appear within an HTML page when displayed by a web browser. While such applications are now commonly available, they have various shortcomings.
Because the Internet is not a homogeneous network, the many computer systems and other machines which form the Internet have a variety of different hardware and software configurations. As a result, these machines have widely varying capabilities. These capabilities may determine, among other things, how a particular client system on Internet can present a software application to the user. That is, different client systems on Internet may have different rendering capabilities. For example, some client systems may be capable of rendering output of a software application by executing Java applets, while others may not. Some client machines may be capable of rendering a software application using interactive HTML, while others may not. Various other differences in capabilities may also be encountered.
To accommodate such differences, developers of Internet applications have resorted to writing separate versions of a given software application for each different type of client rendering capability the software application is expected to support. This process tends to be time-consuming and labor-intensive and can therefore add to the cost of developing and using software.
The present invention includes a method and apparatus for enabling software to be presented in any of a plurality of render modes. A logic definition of any software application is maintained in a server system on a network. The logic definition is for use with each of multiple selectable render modes for presenting the software application on a client system on the network. In the server system, one of a plurality of render modes is selected based on, and in response to, a signal from the client system, and the logic definition of the software application is used to cause the output of the software to be rendered to the client system in the selected render mode.
In certain embodiments, the server maintains a number of render modules, each corresponding to a different one of the render modes. The signal from the client may be a user-initiated request to execute the software application and may include a render parameter for specifying the render mode.